# -*- coding: utf-8 -*-
"""
@Time    : 2024/8/1 14:31 
@Author  : ZhangShenao 
@File    : 2.响应媒体文件.py 
@Desc    : 响应媒体文件

Flask支持读取媒体文件,并按照二进制形式返回响应
"""
from flask import Flask, Response

app = Flask(__name__)
app.config["DEBUG"] = True


@app.route("/media_response", methods=["GET"])
def media_response() -> [str | Response]:
    """媒体文件响应"""

    # 加载本地文件,将内容读取至内存
    # 需要以二进制模式打开文件
    with open("./avatar.png", mode="rb") as f:
        data = f.read()

    # 返回文件响应
    # 以下两种返回方式等价
    # return Response(data, status=200, headers={"Content-Type": "image/png"})
    return data, 200, {"Content-Type": "image/png"}


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)
